import dayjs from 'dayjs'
// 导入dayjs中相对时间的插件
import rt from 'dayjs/plugin/relativeTime'
// 语言包
import 'dayjs/locale/zh-cn'
// 处理国际化 的时候使用
import { useAppStore } from '@/store/app.ts'

export const dateFilter = (val, format = 'YYYY-MM-DD') => {
  if (!isNaN(val)) {
    val = parseInt(val)
  }
  return dayjs(val).format(format)
}

// 加载相对时间插件
dayjs.extend(rt)

function relativeTime(val) {
  let appStore = useAppStore()

  if (!isNaN(val)) {
    val = parseInt(val)
  }
  // 必须 先使用 dayjs.extend(rt) 加载rt 相对时间的方法
  // 然后使用 to方法
  return dayjs()
    .locale(appStore.language === 'zh' ? 'zh-cn' : 'en')
    .to(dayjs(val))
}

// 全局属性 $filters中 定义
export default (app) => {
  app.config.globalProperties.$filters = {
    dateFilter,
    relativeTime
  }
}
